package com.hxh.service;

import com.baomidou.mybatisplus.plugins.Page;
import com.hxh.dao.TemplateConfigDao;
import com.hxh.entity.TemplateConfig;
import com.hxh.entity.input.TemplateConfigInput;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils;

import javax.annotation.Resource;
import java.util.List;


@Service
@Transactional
@Slf4j
public class TemplateConfigService {
    @Resource TemplateConfigDao templateConfigDao;


    public boolean insert(TemplateConfigInput pojo) {

        boolean res = templateConfigDao.insert(pojo) > 0;

        return res;
    }

    public int insertList(List<TemplateConfigInput> pojo) {
        if(CollectionUtils.isEmpty(pojo)){
            return 0;
        }

        int res = templateConfigDao.insertList(pojo);
        return res;
    }

    public List<TemplateConfig> select(TemplateConfigInput pojo) {
        return templateConfigDao.select(pojo);
    }

    public boolean deleteById(Integer id){
        return templateConfigDao.deleteById(id) > 0;
    }

    public TemplateConfig selectById(Integer id){
        if(id == null ) {
          return null;
        }
        return templateConfigDao.selectById(id);
    }

    public void listPage(Page<TemplateConfig> page, TemplateConfigInput pojo) {
        page.setRecords(templateConfigDao.listPage(page, pojo));
    }

    public boolean update(TemplateConfigInput pojo) {

        boolean res = templateConfigDao.update(pojo) > 0;

        return res;
    }

    public boolean updateSelective(TemplateConfigInput pojo) {

        int res = templateConfigDao.updateSelective(pojo);
        return res > 0;
    }

    public TemplateConfig getTemplateConfigByName(String name) {
        TemplateConfigInput templateConfigInput = new TemplateConfigInput();
        templateConfigInput.setTemplateName(name);
        List<TemplateConfig> templateConfigList = templateConfigDao.select(templateConfigInput);
        if(CollectionUtils.isEmpty(templateConfigList)){
            return null;
        }
        return templateConfigList.get(0);
    }
}
